﻿using System.IO;
using RayDen.RayEngine.Core;
using RayDen.RayEngine.Engines.PathTracer.Volume;

namespace RayDen.RayEngine.Engines.PathTracer
{
    using Path = 
    //PathTracerPath;
    //ProductionPathTracerPath;
    PurePathTracerPath ;
    //SSPathTracerPath;
    //UniversalPathSampler;
    public class PathBuffer : PathBuffer<Path>
    {

        public PathBuffer(){}

        public PathBuffer(int maxPaths, RayEngineScene scene, ImageFilmBase agg, SamplingContext sc)
            : base(maxPaths, scene, agg, sc)
        {
        }

        protected override PathSamplerBase CreatePathSampler()
        {
            return volumePaths
                       ? (PathSamplerBase) new VolumePathTracerPath() { SurfaceSampler = surfaceSampler, pathIntegrator = this, LightSampler = this.lightSampler}
                       : new Path() { SurfaceSampler = surfaceSampler, pathIntegrator = this, LightSampler = this.lightSampler };
        }

    }
}